﻿//using System; 
//using System.Collections.Generic;
//using System.Text;
//using System.IO;  
//
//namespace GetCRC32
//{ 
//	class CRC32Cls
//	{ 
//		protected ulong[] Crc32Table; 
//		public void GetCRC32Table()
//		{ 
//			if(Crc32Table != null)
//			{
//				return;
//			}
//
//			ulong Crc; 
//			Crc32Table = new ulong[256];
//			int i,j;
//
//			for(i = 0;i < 256; i++)
//			{ 
//				Crc = (ulong)i; 
//				for (j = 8; j > 0; j--)
//				{ 
//					if ((Crc & 1) == 1) 
//					{
//						Crc = (Crc >> 1) ^ 0xEDB88320;
//					}
//					else 
//					{
//						Crc >>= 1;
//					}
//				} 
//				Crc32Table[i] = Crc;
//			}
//		}
//
//		public uint GetCRC32Str(string sInputString)
//		{
//			GetCRC32Table();
//			byte[] buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(sInputString);
//			ulong value = 0xffffffff;
//			int len = buffer.Length;
//			for (int i = 0; i < len; i++)
//			{ 
//				value = (value >> 8) ^ Crc32Table[(value & 0xFF)^ buffer[i]];
//			} 
//
//			return (uint)(value ^ 0xffffffff);
//		}
//	}
//}